package org.dcma.client.procesos;

import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.MenuItem;
import com.google.gwt.user.client.ui.TabPanel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.VerticalSplitPanel;

public class ProcesosGui extends Composite{
	
	public ProcesosGui() {  
		generateUI();
	}
	
	private void generateUI() {
		/*
		 * vsp
		 * es el panel principal de la aplicacion
		 */
		final VerticalSplitPanel vsp=new VerticalSplitPanel();
		/*
		 * vp
		 * es el panel donde alojaremos el menu principal asi como
		 * la tabla de procesos
		 */
		final VerticalPanel vp=new VerticalPanel();
		/*
		 * menu
		 * Es el menu principal de la aplicacion
		 */
		final MenuBar menu=new MenuBar();		
		MenuItem nuevo=new MenuItem("Nuevo", new Command() {
			
			@Override
			public void execute() {
				// TODO Auto-generated method stub
				
			}
		});
		
		/*
		 * agregamos los MenuItem
		 */
		menu.addItem(nuevo);
		
		/*
		 * gridProcesos
		 * es la tabla de los procesos conciliatorios
		 */
		final Grid gridProcesos=new Grid(5,8);
		/*
		 * Botones ha ser utilizados como cabeceras 
		 */
		final Button headNumero=new Button("Numero");
		final Button headFecha=new Button("Iniciado en");
		final Button headEstado=new Button("Estado");
		final Button headSolicitante=new Button("Solicitante");
		final Button headInvitado=new Button("Invitado");
		final Button headMaterias=new Button("Materias");
		final Button headConcluido=new Button("Concluido en");
		
		/*
		 * Colocamos los botones creados
		 */
		gridProcesos.setWidget(0, 0, new Button("ID"));
		gridProcesos.setWidget(0, 1, headNumero);
		gridProcesos.setWidget(0, 2, headFecha);
		gridProcesos.setWidget(0, 3, headEstado);
		gridProcesos.setWidget(0, 4, headSolicitante);
		gridProcesos.setWidget(0, 5, headInvitado);
		gridProcesos.setWidget(0, 6, headMaterias);
		gridProcesos.setWidget(0, 7, headConcluido);
		
		/*
		 * Colocamos lo creado en vp
		 */
		vp.add(menu);
		vp.add(gridProcesos);
		
		/*
		 * tp
		 * Panel donde colocaremos los datos del proceso 
		 */
		TabPanel tp=new TabPanel();
				
		
		/*
		 * info
		 * Panel con la informacion basica del proceso
		 */
		Grid info=new Grid(2,3);
		info.setWidget(0,0,new Label("Fecha Inicio"));
		info.setWidget(0,1,new Label("23/05/2010"));
		info.setWidget(1,0,new Label("Estado"));
		info.setWidget(1,1,new Label("Activo"));
		info.setWidget(2,0,new Label("Resumen"));
		info.setWidget(2,1,new TextArea());
		
		/*
		 * Usuarios
		 * Panel con la lista de Usuarios
		 */
		Grid usuarios=new Grid(4,1);
		usuarios.setWidget(0,0,new Label("Solicitantes"));
		usuarios.setWidget(1,0,new Label(""));
		usuarios.setWidget(2,0,new Label("Invitados"));
		usuarios.setWidget(3,0,new Label(""));
		
		/*
		 * Materias
		 * Pnale con la lista de materias a conciliar
		 */
		Grid materias=new Grid(2,2);
		materias.setWidget(0,0,new Label("Materia"));
		materias.setWidget(1,0,new Label(""));
		materias.setWidget(0,1,new Label("ACuerdo"));
		materias.setWidget(1,1,new Label(""));
		
		/*
		 * agregamos los paneles a tp
		 */
		tp.add(info, "Datos del Proceso");
		tp.add(usuarios, "Usuarios");
		tp.add(materias, "Materias");
		
		/*
		 * agregamos tp a vsp
		 */
		vsp.add(tp);
		initWidget(vsp);
	}	
}
